package cn.tedu.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

//测试 Collection接口
public class Test2_1 {
    public static void main(String[] args) {
        //1.创建对象
        Collection<Integer> c=new ArrayList<>();
        //2.调用方法
        c.add(100);//向集合中添加元素，要符合泛型类型的检查
        c.add(200);//自动装箱
        c.add(300);
        System.out.println(c);
//        c.clear();//清空集合
        System.out.println(c.contains(200));//判断c里是否包含200
        System.out.println(c.equals("jack"));//判断是否和jack相等
        System.out.println(c.hashCode());//获取哈希码值
        System.out.println(c.isEmpty());//判断c集合是否为空
        System.out.println(c.remove(100));//移除集合里的元素100
        System.out.println(c.size());//获取集合里元素的个数
        System.out.println(Arrays.toString(c.toArray()));//把c里的数据存入Object数组打印

        //迭带集合中的元素
        //方式一：Iterator<E> iterator
        Iterator<Integer> it =c.iterator();//如果没有泛型的约束，循环获取数据的时候需要强转
        while (it.hasNext()){//hasNext() :判断有没有数据
            Integer date =it.next(); //next() 获取数据
            System.out.println(date);
        }
        //方式二：foreach的使用场景
        //for（遍历得到的数据类型 变量名：要遍历啥）{循环体}
        for(Integer z:c){
            System.out.println(z);
        }
        //1.创建对象
        Collection<Integer> c2=new ArrayList<>();
        c2.add(100);
        c2.add(200);
        System.out.println(c.addAll(c2));//把c2加到c里
        System.out.println(c.containsAll(c2));//判断c2是否包含c吗
//        System.out.println(c.removeAll(c2));//移除c和c2的交集
        System.out.println(c.retainAll(c2));//保留c和c2的交集

    }
}
